#include<iostream> 
#include<algorithm>

using namespace std;

const int N=1e5+10,M=2*N;

int h[N],e[M],ne[M],idx;
int color[N];
int n,m;


void add(int a,int b)
{
	e[idx]=b;
	ne[idx]=h[a];
	h[a]=idx++;
}


bool dfs(int u,int c)
{
	color[u]=c;
	for(int i=h[u];i!=-1;i=ne[i]){
		int j=e[i];
		if(!color[j]&&!dfs(j,3-c)) return false;
		if(color[j]==c) return false;
	}
	return true;
}


int main()
{
	scanf("%d%d",&n,&m);
	fill(h,h+N,-1);
	
	while(m--){
		int a,b;
		scanf("%d%d",&a,&b);
		add(a,b),add(b,a);
	}
	
	bool flag=true;
	for(int i=1;i<=n;i++){
		if(!color[i]&&!dfs(i,1)){
			flag=false;
			break;
		}
	}
	
	if(flag) printf("Yes");
	else  printf("No");
	
	return 0;
}
